package com.study.modules.designPatterns.No05ProxyMode;

/**
 * 代理模式
 * 代理模式的定义：为其他对象提供一种代理以控制对这个对象的访问。
 * 代理模式的主要作用是：
 * 1. 保护目标对象，目标对象可以访问，但是不能修改
 * 2. 增强目标对象，目标对象可以访问，但是可以修改
 * 3. 控制目标对象，目标对象可以访问，但是可以做一些控制
 * 4. 日志记录，记录目标对象访问的日志
 * 5. 权限控制，控制目标对象访问的权限
 * 6. 目标对象访问控制，控制目标对象访问的权限
 */
public class TestProxyMode {
    /**
     * 测试代理模式
     */
    public static void main(String[] args) {
        Subject subject = new RealSubject();
        Subject proxySubject = new ProxySubject(subject);
        proxySubject.request();
    }
}
